/*
 * @Description: 公共数据
 *
 * @Author: XiongYaoYuan<xiongyaoyuan>
 * @Date: 2023-06-05 15:24:52
 * @FilePath: /yuxiuproweb/src/views/process/production/helper.js
 */

/**
 * 生成树形结构
 * @param {*} data // 数据列表
 * @returns // 树形列表
 */
export const delDepartTree = (data) => {
  const obj = {}; // 重新存储数据
  const res = []; // 存储最后结果
  const len = data.length;
  const processId = "processId";
  const pid = "pid";
  const children = "children";
  // 遍历原始数据data，构造obj数据，键名为id，值为数据
  for (let i = 0; i < len; i++) {
    obj[data[i][processId]] = data[i];
  }
  // 遍历原始数据
  for (let j = 0; j < len; j++) {
    const list = data[j];
    // 通过每条数据的 pid 去obj中查询
    const parentList = obj[list[pid]];
    if (parentList) {
      // 根据 pid 找到的是父节点，list是子节点，
      if (!parentList[children]) {
        parentList[children] = [];
      }
      // 将子节点插入 父节点的 children 字段中
      parentList[children].push(list);
    } else {
      // pid 找不到对应值，说明是根结点，直接插到根数组中
      res.push(list);
    }
  }
  return res;
};
